package org.example.simpleFactory;

/**
 * org.example.simpleFactory
 *
 * @author 莫磊
 * @description 简单工厂模式（静态工厂方法模式）
 *              简单工厂模式中的角色：
 *                  抽象产品角色
 *                  具体产品角色
 *                  共仓类角色
 *              缺点：
 *                  1.需要扩展时需要修改工厂类代码，违背OCP原则
 *                  2.工厂类责任比较大，不能出现任何问题，一旦出现问题，整个流程全部崩溃，没有容错
 * @date 2025/7/20
 */
public class WeaponFactory {

    /**
     * 静态方法，根据你具体需要什么产品，传入对应的参数，就给你返回对应产品
     * 简单工厂模式中有一个静态方法，所以就叫静态工厂方法模式
     */
    public static Weapon get(String weaponType) {
        if (weaponType.toLowerCase().equals("tank")) {
            return new Tank();
        } else if (weaponType.toLowerCase().equals("fighter")) {
            return new Fighter();
        } else if (weaponType.toLowerCase().equals("dagger")) {
            return new Dagger();
        }
        System.out.println("参数错误！");
        return null;
    }

}


